Volume customization

ABSTRACT

A method may include identify an application launched in a device by a user or a program or a channel selected by the user for playing. The method may further include querying a database to determine whether the application, program, or channel is associated with preset volume settings, wherein the database includes information identifying preset volume settings for a plurality of applications, a plurality of programs, or a plurality of channels. The method may include setting, when the application, program, or channel is associated with preset volume settings, the volume according the preset volume settings during execution of the application or playing of the program or channel. The method may also include prompting the user to set volume settings associated with the application, program, or channel when the application is not associated with the preset volume settings.

BACKGROUND INFORMATION

Televisions and device applications typically allow a user to controlthe volume of audio associated with the television or application. Forexample, televisions and applications may allow for the volume to beincreased or decreased. The control provided by the televisions andapplications is limited.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B illustrate overviews of embodiments for customizingvolume settings;

FIG. 2 is a diagram of an exemplary network for implementing theembodiments of FIGS. 1A and 1B and other embodiments for customizingvolume settings;

FIG. 3 is a block diagram of exemplary components of a computing moduleimplemented in the devices of FIG. 2;

FIG. 4A is a block diagram of exemplary components of the mobile device,set-top-box, or computer of FIG. 2;

FIG. 4B is a block diagram of exemplary components of the customizationserver FIG. 2;

FIGS. 5A, 5B, and 5C are a diagrams of an exemplary volume rule tablestored in the set-top box, mobile device, or computer of FIG. 2;

FIGS. 6A, 6B, and 6C are flowcharts of exemplary processes for thecustomization of volume controls; and

FIGS. 7A and 7B illustrate a television in an example.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description refers to the accompanying drawings.The same reference numbers in different drawings may identify the sameor similar elements. Also, the following detailed description isexemplary and explanatory only and is not restrictive of the invention,as claimed.

Embodiments disclosed herein allow for a user to customize volumesettings in a mobile device, a set-top-box, a TV, a computer, etc. Forexample, FIGS. 1A and 1B illustrate embodiments in which a user is giventhe opportunity to customize volume settings when launching anapplication or viewing a channel. As shown in FIG. 1A, a mobile device170 displays a dialog box 104 when the user launches an application. Theuser may program custom volume settings to apply to the applicationwhenever it is executed. As shown in FIG. 1B, TV 158 displays a dialogbox 106 when the user is watching a TV channel. The user may programcustom volume settings to apply to the channel when the channel is beingwatched. The customizations may include the time of day, day of week,people present, ambient noise, ambient light, etc. The customizationsmay be extended in situations other than launched applications ortelevision channels.

FIG. 2 is a diagram of an exemplary network 200 for implementing theembodiment of FIG. 1 and other embodiments. Network 200 may include adata center 210, a video hub office (VHO) 230, a video service office(VSO) 240, customer premises 250, mobile device 170, and a network 280.VSO 240, VHO 230, data center 210, and other devices in network 200 mayform part of a high-speed fiber optic network.

Customer premises 250 (e.g., a customer's home) may include an opticalnetwork terminal (ONT) 252, a personal computer 254, a set-top box (STB)256, a television 158, an a remote control 260. Devices in customerpremises 250 may include one or more computers for hosting programs,such as a program for a user to customize volume settings forapplications, programs, or channels. Devices in customer premises 250and mobile device 170 may be considered “user devices” or “networkdevices.”

ONT 252 may receive data, e.g., on a fiber optic cable, and may transmitdata to the appropriate device in customer premises 250, such ascomputer 254 or STB 256. Likewise, ONT 252 may receive data from anydevice in customer premises 250 and may transmit the data to otherdevices in network 200, e.g., through a fiber optic cable. ONT 252 mayprovide customer premises 250 with Internet access, television access,or telephone service, for example. In one implementation, network 200may include a cable modem in customer premises 250 for receiving andtransmitting data rather than an optical network terminal.

Computer 254 may include a laptop, a desktop, a tablet computer, amobile telephone, or another computation and/or communication device.Computer 254 may include a microphone for capturing audio and/or acamera for capturing images or video. Computer 254 may also include adisplay 255 for showing images or video or a speaker 257 for playingaudio. Computer 254 may connect to network 280 (e.g., the Internet)through ONT 252 and VSO 240, for example. Computer 254 may interact withdata center 210 to provide a user with the ability to view content,download and run applications, and program customized volume settings.For example, personal computer 254 may provide the user with a browser.

STB 256 may receive content and output the content to TV 158 fordisplay. STB 256 may include a component (e.g., a cable card or asoftware application) that interfaces with (e.g., plugs into) a hostdevice (e.g., a personal computer, TV 158, a stereo system, etc.) andallows the host device to display content. STB 256 may also beimplemented as a home theater personal computer (HTPC), an optical diskplayer (e.g., digital video disk (DVD) or Blu-Ray™ disc player), a cablecard, etc. STB 256 may receive commands or data from other devices innetwork 200, such as remote control 260, and may transmit data to otherdevices in network 200 (e.g., to data center 210).

TV 158 may output content received from STB 256, for example. TV 158 mayinclude speakers as well as a display (e.g., display 102 of FIG. 1).Remote control 260 may issue wired or wireless commands for controllingother electronic devices, such as TV 158 or STB 256. Remote control 260,in conjunction with STB 256, may allow a user to interact with anapplication running on STB 256, such as an application to view contentor program custom volume settings. Remote control 260 may allow the userto control the volume of content being viewed on TV 158. Other types ofdevices (e.g., a keyboard, mouse, mobile phone, etc.) may be usedinstead of remote control 260.

Customer premises 250 may connect to VSO 240. VSO 240 may delivercontent to customer premises 250 and may receive data from customerpremises 250 for forwarding to the proper destination (e.g., data center210). VSO 240 may include a server for transcoding and multiplexingcontent from different sources for delivery to customer premises 250.

VHO 230 may include a content server 232. Content server 232 may storeand provide come (e.g., including on-demand programs). Content server232 may also include a catalog of programs for a user to browse andselect. Content Server 232 may also provide content from nationalbroadcast channels, for example.

Network 280 may include one or more packet switched networks, such as anInternet protocol (IP) based network, a local area network (LAN), a widearea network (WAN), a personal area network (PAN), an intranet, theInternet, a cellular network, a fiber-optic network, or another type ofnetwork that is capable of transmitting data. Network 280, inconjunction with devices in network 200 (e.g., VSO 240), may allow userdevices (e.g., computer 254, STB 256, TV 158, or mobile device 170) toconnect to other devices also attached to network 280.

Mobile device 170 may include a mobile phone, a tablet computer, alaptop, or another portable communication device. In one embodiment,mobile device 170 may download and run applications, includingapplications from Apple's™ App Store, Amazon's™ Application store forAndroid or Kindle devices, Google's Marketplace for Android devices,Verizon's Application store for Android devices, etc. In one embodiment,mobile device 170 may include a standards-compliant web browser that canexecute JavaScript, HTML5, etc.

Data center 210 may include one or more servers (e.g., “networkdevices”) that manage and/or store programs and data associated withallowing users to experience content. As shown in FIG. 2, data center210 may include a customization server 212 and a web server 218. Devicesin data center 210 may include one or more computers for hostingprograms, such as a web server (e.g., Apache), a database (e.g., MySQL),or other applications,

Customization server 212 may include a database or server that storesinformation about user preferences, custom volume settings, or otherinformation associated with a user. For example, customization server212 may store lists of users and their associations with each other(e.g., parents, children, friends, family, classmates, etc.).

Web server 218 may allow for a user to interface with customizationserver 212 for programming volume customization rules, for example. Webserver 218 may also function as a back-end server to coordinatecommunications between user devices and customization server 212.

The exemplary configuration of devices in network 200 is illustrated forsimplicity. Network 200 may include more devices, fewer devices, or adifferent configuration of devices than illustrated in FIG. 2. Forexample, network 200 may include thousands or millions of customerpremises. In some embodiments, the functions performed by two or moredevices may be performed by any one device. Likewise, in someembodiments, the functions performed by any one device may be performedby multiple devices. Further, the connections shown in FIG. 2 areexemplary. In other embodiments, additional connections that are notshown in FIG. 2 may exist between devices each device may be connectedto every other device). The connections in FIG. 2 may also be wirelessor wired.

Devices in network 200 may each include one or more computing modules.FIG. 3 is a block diagram of exemplary components of a computing module300. Computing module 300 may include a bus 310, processing logic 320,an input device 330, an output device 340, a communication interface350, and a memory 360. Computing module 300 may include other components(not shown) that aid in receiving, transmitting, and/or processing data.Moreover, other configurations of components in computing module 300 arepossible.

Bus 310 may include a path that permits communication among thecomponents of computing module 300. Processing logic 320 may include anytype of processor or microprocessor (or families of processors ormicroprocessors) that interprets and executes instructions. In otherembodiments, processing logic 320 may include an application-specificintegrated circuit (ASIC), a field-programmable gate array (FPGA), etc.

Input device 330 may receive information from, for example, a keyboard,a mouse, a pen, a microphone, a remote control (e.g., remote control260), an audio capture device, an image and/or video capture device, atouch-screen display, etc. Some devices in network 200, such as serversin data center 210, may be managed remote (e.g., are “headless”) and maynot include a keyboard, a mouse, a microphone, etc.

Output device 340 may output information to the user. Output device 340may include a display, a speaker, etc. For example, computer 254 mayinclude speaker 257 to output audio to the user. STB 256 and/or TV 158may be associated with a speaker 259 to output audio of programs beingplayed on TV 158. As another example, TV 158 and/or personal computer254 may include a display (an output device), which may include aliquid-crystal display (LCD) for displaying content to the user. Forexample, computer 254 may include display 255. As another example, ONT252 and STB 256 may include light-emitting diodes (LEDs). Headlessdevices, such as servers in data center 210 may be managed remotely andmay not include a display.

Input device 330 and output device 340 may allow a user to activate andinteract with a particular service or application, such as a web browseror an application to customize volume settings in applications,programs, or channels. Input device 330 and output device 340 may allowa user to receive and view a menu of options and select from the menuoptions. The menu may allow the user to select various functions orservices associated with applications executed by computing module 300.

Communication interface 350 may include a transceiver that enablescomputing module 300 to communicate with other devices or systems.Communication interface 350 may include a transmitter that convertsbaseband signals to radio frequency (RE) signals or a receiver thatconverts RF signals to baseband signals. Communication interface 350 maybe coupled to an antenna for transmitting and receiving RF signals.Communication interface 350 may include a network interface card, e.g.,Ethernet card, for wired communications or a wireless network interface(e.g., a WiFi) card for wireless communications. Communication interface350 may also include, for example, a universal serial bus (USB) port forcommunications over a cable, a Bluetooth™ wireless interface, aradio-frequency identification (RFID) interface, a near-fieldcommunications (NFC) wireless interface, etc.

Memory 360 may store, among other things, information and instructions(e.g., applications 364 and operating system 362) and data (e.g.,application data 366) for use by processing logic 320. Memory 360 mayinclude a random access memory (RAM) or another type of dynamic storagedevice, a read-only memory (ROM) device or another type of staticstorage device, and/or some other type of magnetic or optical recordingmedium and its corresponding drive (e.g., a hard disk drive).

Operating system 362 may include software instructions for managinghardware and software resources of computing module 300. For example,operating system 362 may include Linux, Solaris, Windows, OS X, iOS,Android, an embedded operating system, etc. Applications 364 andapplication data 366 may provide network services or includeapplications, depending on the device in which the particular computingmodule 300 is found.

Computing module 300 may perform the operations described herein inresponse to processing logic 320 executing software instructions storedin a computer-readable medium, such as memory 360. A computer-readablemedium may include a physical, logical, and/or non-transitory memorydevice. The software instructions may be read into memory 360 fromanother computer-readable medium or from another device viacommunication interface 350. The software instructions stored in memory360 may cause processing logic 320 to perform processes that aredescribed herein.

As described above with respect to FIG. 2, STB 256, computer 254, and/ormobile device 170 may allow a user to set customize volume settings forapplications, channels, programs, time of day, day of week, etc. FIG. 4Ais a block diagram of exemplary components of STB 256, computer 254, ormobile device 170 (e.g., functions performed by application 364 executedby processing logic 320 or stored in memory 360 of STB 256, mobiledevice 170, or computer 254). STB 256, mobile device 170, or computer254 may include a volume customization application 402, a volumecustomization daemon 404, volume rule tables 406, privilege table 408,content storage 410, and/or sensor logic 412. Mobile device 170, STB256, and computer 254 may include more devices, fewer devices, or adifferent configuration of devices than illustrated in FIG. 4A.

Volume customization application 402 may provide the user with aninterface to customize the volume for different programs, channels,applications, etc. The volume settings may depend on location, the timeof day, the day of week, etc. For example, John Smith may employ volumecustomization application 402 to customize the volume for programsplayed on the History Channel. Volume customization application 402 maystore customized volume settings in volume rule tables 406, discussedbelow. In one embodiment, volume customization application 402 anddaemon 404 may include an application purchased or downloaded, forexample, from Apple's™ App Store, Amazon's™ Application store forAndroid or Kindle devices, Google's Marketplace for Android devices,Verizon's Application store for Android devices, etc.

Volume customization daemon 404 is a process or program that runs in thebackground to implement the volume customization rules stored in volumerule tables 406. For example, volume customization daemon 404 may sensewhen a channel is selected (e.g., the History Channel) and adjust thevolume according to the rules stored in volume rule tables 406. Volumecustomization daemon 404 may use many parameters that relate to rulesstored in rule tables 406. That is, daemon 404 may receive informationfrom sensors in mobile device 170, STB 256, and/or computer 254. In oneembodiment, daemon 404 may (e.g., in mobile device 170) determine theambient noise conditions, the ambient light conditions, the location ofmobile device 170, the location of a calling party, etc., for theapplication of rules stored in rule tables 406.

Volume rule tables 406 stores the conditions, criteria, and volumesettings for the customization of the volume for a device, such asmobile device 170, STB 256, or computer 254. FIGS. 5A-5C, discussedbelow, provide example of volume rule tables 406. Privilege table 408may determine which users can edit or manage the volume settings ofother users. For example, privilege table 408 may determine that aparent can edit and determine the volume settings of that parent'schild.

Content storage 410 may include music, recorded programs, etc., at auser may play on mobile device 170, STB 256, and/or computer 254.

Sensor logic 412 may sense or determine different parameters (e.g., inand around mobile device 170, STB 256, or computer 254). Sensor logic412 may identify the users watching TV 158, for example, and theirassociated profiles (e.g., stored in a user profile database). Sensorlogic 412 may use a tight-sensitive diode to determine the ambientlight. Sensor logic 412 may use a microphone to determine the ambientsound. Sensor logic 412 may query other processes in mobile device 170,STB 256, or computer 254 to determine the time of day, the day of week,the channel currently being played (e.g., by STB 256), the URL beingvisited (e.g., by a web browser), or the default audio output device.Sensor logic 412 may query databases to determine the genre of a currentprogram being played, for example,

In one embodiment, sensor logic 412 may determine the users in front ofor around TV 158. In this embodiment, sensor logic 412 may detect REIDtags carried by users (e.g., using NFC technology, Bluetooth, etc.) andassociated with profiles. In another embodiment, sensor logic 412 maydetect hardware addresses associated with wireless devices andassociated with user profiles. In another embodiment, sensor logic 412may use a microphone or a camera and voice/face recognition software (orother biometric devices) to determine the users in front of or nearby TV158 and their associated profiles. As yet another example, sensor logic412 may detect users and profiles by virtue of a user “logging in” to anaccount associated with a profile.

FIG. 4B is a block diagram of exemplary components of customizationserver 212 in one embodiment (e.g., functions performed by application364 executed by processing logic 320 or stored in memory 360 ofcustomization server 212). Customization server 212 may include userprofile database 432 and volume customization application 434.Customization server 212 may include more, fewer, or a differentarrangement of components than illustrated in FIG. 4B,

Volume customization application 434 may perform many of the samefunctions described above with respect to volume customizationapplication 402 and/or volume customization daemon 404 in STB 256,mobile device 170, or computer 254. In this embodiment, data center 210may replace or supplement the functionality of STB 256, mobile device170, or computer 254. In other words, the logic to determine the volumemay be “in the cloud” and provided “over the top” by data center 210 touser devices, such as mobile device 170.

User profile database 432 may store a database of user profiles. A userprofile may store information about a user's preferences (e.g., volumecustomizations) or other information associated with a user. Userprofile database 432 may also store a list of other users (e,g.,contacts) associated with a particular user (e.g., friends, classmates,followers, family, etc.). User profile database 432 may identify usersor groups of users who may be granted permissions to set volumecustomization settings associated with a particular user (e.g.,privilege table 408). In one embodiment, a user profile may store simplyan identification of the user.

FIGS. 5A, 5B, and 5C are diagrams of exemplary volume rule tables 500(individually “rule table 500-x”). Volume rule tables 500 may store thecustomized rules for volume control. As shown in FIG. 5A, rule table500-1 includes a profile field 502, an application field 504, a contentname field 505, a time field 506, a day field 508, a channel field 510,a location field 512, a genre field 514, a URL field 516, a SNR field518, a frequency band field 520, a distance field 522, an output device524, a caller location field 526, a users present field 528, an ambientnoise field 530, an ambient light field 532, a volume field 534, amaximum volume field 536, and an equalization field 538. Rule tables 500may include fewer, more, or different fields or different datastructures than shown in FIG. 5A.

Fields 502 through 533 express conditions or criteria that when metinvoke the volume settings listed in fields 534-538. Rule table 500-1shows one rule, e.g., one set of criteria and one set of volumesettings. Likewise, rule table 500-2 shows another rule with volumesettings, and rule table 500-3 shows another rule with volume setting.Many rule tables defining many different rules are possible.

Profile field 502 identifies the profile(s), person(s), or useraccount(s) with which the remaining data in table 500-1 is associated.Thus, the rule specified in table 500-1 may only apply when the personassociated with profile field 502 is logged into STB 256 or mobiledevice 170. For example, a profile field specifying “John” indicatesthat the information in table 500-1 is associated with the user profilefor John Smith.

Application field 504 specifies the application, game, etc., associatedwith the rule. For example, if application field 504 specifies “Doom,”then the volume settings in fields 534-538 would only apply to the soundoutput from the application named “Doom.” Application field 504 may alsoidentify multiple applications or a group of applications for whichvolume settings in fields 534-538 apply.

Content name field 505 may identify a piece of content by name (e.g.,title), number, season number, episode number, etc. For example, if thecontent name field 505 specified the name “The Simpsons” as the title,then the volume settings in fields 534-538 would only apply to the soundoutput when a program with that title was played. Content name field 505may also identify multiple content filenames or a group of contentfilenames for which volume settings in fields 534-538 apply.

Time field 506 may specify the time for which the volume settings infields 534-538 apply. For example, time field 506 may specify 12:00am-8:00 am. In this case, the volume in fields 534-538 would only applyfrom midnight to 8 in the morning.

Day field 508 may specify the day for which the volume settings infields 534-538 apply. For example, day field 508 may specifyMonday-Friday. In this case, the volume in fields 534-538 would onlyapply on week days.

Channel field 510 may specify the channel for which the volume settingsin fields 534-538 apply. For example, channel field 510 may specify the“History Channel.” In this case, the volume in fields 534-538 would onlyapply for content being played from the History Channel. Channel field510 may also identify multiple channels or a group of channels for whichvolume settings in fields 534-538 apply.

Location field 512 may specify the location for which the volumesettings in fields 534-538 apply. For example, the location may specify“work,” “home,” “temple,” “church,” etc. Thus, for mobile device 170,the volume settings in fields 534-538 may change depending on thelocation of the device.

Genre field 514 may specify the genre (e.g., the category of artisticcomposition) of a program for which the volume settings in fields534-538 apply. For example, genre field 514 may specify “comedy,”“drama,” “action,” etc. In this case, the volume in fields 534-538 wouldonly apply for content in the “action genre” if genre field 514specified “action.”

URL field 516 may specify the domain for which the volume settings infields 534-538 apply. For example, URL field 516 may specify“youtube.com.” In this case, the volume settings in fields 534-538 wouldnot apply unless the domain from which the volume originated wasyoutube.com.

SNR field 518 may specify the signal-to-noise ratio (e.g., of the soundbeing played) for which the volume settings in fields 534-538 apply. Forexample, fir audio with a high noise component, a user that ishard-of-hearing may specify a higher volume.

Frequency band field 520 may specify the frequencies bands (e.g., of thesound being played) for which the volume settings in fields 534-538apply. The frequency bands may be specified in Hertz and power. Forexample, if audio has a lot of power in high frequency bands, then theuser may wish for the volume settings to be lower.

Distance field 522 may specify a distance of the listener away from theaudio source for which the volume settings in fields 534-538 apply. Forexample, the farther the listener is away from the audio source, thelouder the volume settings may be.

Output device 524 may specify the audio device for which the volumesettings in fields 534-538 apply. For example, if the output deviceincludes detached speakers with a subwoofer, then a different volumesetting may be applied than if the output device is only the internalspeakers to mobile device 170.

Caller location field 526 may specify the location of the caller forwhich the volume settings in fields 534-538 apply. For example, if acaller is located in a public venue (e.g., at a stadium), then thevolume settings may be louder so that the person receiving the call canbetter hear the caller.

Users present field 528 specifies the listeners for which the volumesettings in fields 534-538 apply. For example, field 528 may specify“John and Joe.” In this case, the specified volume settings in fields534-538 apply only when John and Joe are present.

Ambient noise field 530 specifies the ambient noise levels for which thevolume settings in fields 534-538 apply. For example, in a noisylistening environment, the specified volume may be higher so that thelistener can better hear the content being played.

Ambient light field 532 may specify the ambient light conditions forwhich the volume settings in fields 534-538 apply. For example, in adark environment, the specified volume may be lower. In a brightenvironment, the specified volume may be higher.

Priority field 533 specifies which rule to apply if there are multiplerule tables whose conditions or criteria are met. For example, if theconditions in rule table 500-1 are met and the conditions in rule table500-2 are also met, then the volume settings for the rule table that hasthe lower priority number will be applied. Priority field may beexpressed as a number between 1 and 100 for example.

Volume field 534 specifies the volume to be applied to the applicableaudio when the conditions and criteria specified in fields 502-533 aremet. The volume may be specified as a percentage of the maximum valuee.g., a number between zero (no sound) and 100 (full volume)). Thevolume may be specified qualitatively (e.g, soft/low, medium/normal, orloud), for example. For example, this volume includes the volume tostart an application or channel. The volume may also be expressed as afunction based on any one or more of the values stored in fields502-533. For example, the volume level may increase steadily as thelistener moves away from the audio source (e.g., a function of distancefield 522). The volume may decrease steadily as the light slowly dims(e.g., a function of ambient light field 532). The volume may increasesteadily as the light slowly brightens (e.g., a function of ambientlight field 532). The volume may decrease as a function of time (e.g., afunction of time field 506), etc.

Maximum volume field 536 specifies the maximum volume allowed for theapplicable audio when the conditions and criteria specified in fields502-533 are met. The maximum volume may be specified as a percentage(e.g., a number between zero (no sound) and 100 (full volume)). Themaximum volume may be specified qualitatively (e.g., soft/low,medium/normal, or loud), for example. After the volume automaticallystarts, for example, at the level specified in volume field 534, thenthe user may increase the volume until the maximum volume 536 isreached. The maximum volume may also be expressed as a function (e.g.,that varies continuously) of any of the values stored in fields 502-533.

Equalization field 538 may specify the volume for different audiofrequency bands to be applied to the applicable audio when theconditions and criteria specified in fields 502-531 are met. The volumemay be specified as a percentage of the maximum volume (e.g., a numberbetween zero (no sound) and 100 (full volume)). The volume may also bespecified qualitatively, such as soft/tow, medium/normal, or loud. Thefrequency band may be specified in Hertz (high and low). Multiplefrequency bands may be specified in equalization field 538 (e.g., 0-1000Hz; 1000-5000 Hz; 5000-10000 Hz; 10000-15000 Hz; 15000-20000 Hz).

As discussed above, volume rule tables 500 may be used for customizingthe volume for users. FIGS. 6A, 6B, and 6C are flowcharts of processes600A, 600B, and 600C for the customization of volume controls. Thedescription of process 600A includes an example in which the user is acustomer named John Smith. In this example, John sits in front of TV 158at home (e.g., customer premises 250) and uses remote control 260 tocontrol TV 158 and STB 256. John uses remote control 260 and STB 256 tosurf channels, launch applications, play games, etc. Process 600A beginswith the user instructing STB 256 to launch an application (block 602).For example, John may select and launch the application named “Doom”(e.g., a game application). In this example, volume customization daemon404 may sense that the application “Doom” has been launched.

The rule tables may be queried to determine whether the volume settingsfor the launched application have been programmed (block 603). In thiscase, volume customization daemon 404 may query rule tables 500 storedin STB 256. If there is no rule regarding the launched application(block 604: NO), then the user may be prompted to determine if the userwishes to customize the volume for the application (block 606). In thisexample, it is assumed that table 500-1 in rule tables 500 does not yetexist. As shown in FIG. 1A, the user may be prompted with a dialog box104 asking “do you wish to program custom volume settings for thisapplication?” Although dialog 104 is shown in FIG. 1A as appearing onmobile device 170, dialog box 104 may also appear on TV 158. In thisexample, the user selects “YES” or “NO” using remote control 260.

If the user does not wish to customize the volume control for theapplication (e.g., a “NO” selection is received by STB 256) (block 608:NO), then the application runs without customizing the volume controlfor the application (block 614). In one embodiment, the dialog box isautomatically removed if the user does not respond within a certainperiod of time (e.g., 3, 5, 10, 15, or 30 seconds). During execution ofthe application (block 614) (e.g., whether or not customization has beenselected), the user may control the volume by using remote control 260.

If the user does wish to customize the volume control for theapplication (e.g., a “YES” selection is received by STB 256) (block 608:YES), then volume customization application 402 may be launched (block610). In this example, as shown in FIG. 7A, profile field 502,application field 504, and output device field 524 may be automaticallypopulated (e.g., for the profile “John Smith,” the launched application“Doom,” and the default “speaker 259”). The user may edit these fieldsby selecting the “EDIT” button using remote control 260. The user mayalso program the custom volume settings by selecting the up and/or downarrows 712. By hitting the SAVE button, the user may save the volumesettings. By hitting the ADVANCED button, the user may alter the othersettings, such as all those described above with respect to rule tables500. The volume customization settings are received and stored by thevolume customization application (block 612). For example, John mayenter the volume setting information to be stored in table 500-1. Inthis fashion, when the application is launched again (block 602), thenthe user may not be prompted to customize the volume settings (e.g.,block 606 is no performed). In addition, upon saving the selections, theapplication will be executed in accordance with the saved information.

If the application already has custom application settings (block 604:YES), then the appropriate rule table is queried to determine the volumesettings for adjusting the volume accordingly (block 616). For example,when John Smith launches the application “Doom” again then rule table500-1 includes the custom volume settings for the application. In thiscase, STB 256 queries rule table 500-1 for the appropriate volumesettings (e.g., 50% of the maximum in this example). The appropriateparameters may be sensed or determined (block 618). For example, a rulefor an application may depend on the time of day (time field 506) or theday of the week (day field 508). In this case, the current time may bedetermined for comparison to time field 506 or day field 508.

The application is allowed to run (block 614) with, for example, theadjusted volume. During execution of the application (block 614), theuser may still control the volume by using remote control 260 (e.g.,within the parameter set by the corresponding rule). In one embodiment,the user may not increase the volume beyond the volume specified inmaximum volume field 536.

FIG. 6B is a flowchart of an exemplary process 600B for customizingvolume settings while watching a channel. The following description ofprocess 600B follows the example above in which John Smith sits in frontof TV 158 and uses remote control 260 to control TV 158 and STB 256.Process 600B begins with the user instructing STB 256 to view a channel(block 622). For example, John Smith may instruct STB 256 to display the“History Channel.” In this embodiment, volume customization daemon 404may sense that John has selected a channel.

The rule tables may be queried regarding customization for theparticular channel (block 623). Volume customization daemon 404 mayquery rule tables 500 when the “History Channel” is selected, forexample. If there is no rule regarding the channel (block 624: NO) and avolume adjustment is received (block 625) (e.g., a volume up or downpress on remote control 260), then the user may be prompted to determineif the user wishes to customize the volume for the channel (block 626).For example, assuming there is no rule for the “History Channel” yet,while watching the “History Channel,” John may press the volume-upbutton on remote control 260. In this case, volume customization daemon404, may detect the volume-up press and display dialog box 106, as shownin FIG. 1B. In another embodiment, rather than waiting for a volumecontrol button to be pressed on remote control 260, daemon 404 may pausefor a period of time before displaying dialog box 106. In this example,the user selects options “YES” or “NO” using remote control 260.

If the user does not wish to customize the volume control for thechannel (e.g., a “NO” selection is received) (block 628: NO), then thechannel may continue to be played without customizing the volume controlfor the channel (block 629). In one embodiment, dialog box 106 may beautomatically removed if the user does not respond within a certainperiod of time (e.g., 3, 5, 10, 15, or 30 seconds). While the channel isplaying (block 629), the user may still control the volume by usingremote control 260.

If the user does wish to customize the volume control for the channel(e.g., a “YES” selection is received) (block 628: YES), then volumecustomization application 402 may be launched (block 630). As shown inFIG. 7B, volume customization application 402 displays a user interfacefor the user to program custom volume settings for the current channel.In this example, channel field 510 may be populated with the currentchannel (e.g., the “History Channel”). User profile field 502 and outputdevice 524 may also be automatically populated (e.g., “John Smith,” and“Speaker 259”). The user may then add additional conditions by selectingthe ADVANCED button. The user may then also add volume controlinformation by selecting the up or down arrows 712 to program volumefield 534 and maximum volume field 536. The volume customizationsettings are received and stored by the volume customization application(block 632). In this fashion, when the channel is selected again (block622), then the custom volume settings can apply. In addition, uponsaving the selections, the channel will be played in accordance with thesaved information. In this example, John may save the settings in table500-2.

If the channel already has custom volume settings (block 624: YES), thenthe appropriate rule table is queried to determine the volume settingsfor adjusting the volume accordingly (block 636). For example, the nexttime John Smith selects the History Channel, he is not prompted and ruletable 500-1 is queried for the previously programmed settings. Theappropriate parameters may be sensed or determined (block 638). Forexample, a rule for an application may depend on the time of day (timefield 506) or the day of the week (day field 508). In this case, thecurrent time may be determined for comparison to time field 506 or dayfield 508.

The channel is allowed to play (block 629) with, for example, theadjusted volume. While playing the channel (block 629), the user maystill control the volume by using remote control 260. In one embodiment,the user may not increase the volume beyond the volume specified inmaximum volume field 536.

Process 600B may also run on a program-basis rather than achannel-basis. For example, using the content name field 505, process600B may receive a program selection, query rule tables 500, determinewhether a rule exists for the selected program, and set the volumeaccordingly if a rule exists. Otherwise, if a rule does not exist, theuser may be prompted for programming a rule for the program.

A user may also launch volume customization application 402 on its ownto program or change custom volume settings. In one embodiment, volumecustomization application 402 queries privileges (e.g., privilege table408) associated with a profile of the user. In some cases, a user maynot have privileges to edit or change some volume customizations. Forexample, a profile may be established that disallows or prevents a childfrom editing the maximum volume setting of a game. Rather, the profilemay be set to allow the parent of the child to edit the volume settingof the game.

Volume customization daemon 404 may run process 600C as a backgroundprocess (e.g., a process that is always running). Process 600C may beginwith a determination or sensing of parameters that may apply to rules(block 650). These parameters may be determined by the fields stored inrule tables 500. For example, daemon 404 may employ sensor logic 412 todetermine the current profile of the user (e.g., John Smith). Sensorlogic 412 and/or daemon 404 may determine the time of day, the day ofthe week, etc. Daemon 404 may employ sensor logic 412 to determine thechannel that is being watched, for example, by querying other processesin STB 256. Sensor logic 412 may also determine the program beingwatched by querying a program guide (e.g., knowing the time, day, andchannel), or by information carried in the channel itself. Sensor logic412 may determine the genre of a program by querying a program guide(e.g., knowing the name of the program). Sensor logic 412 may determinethe location of the user, particularly in the case of mobile device 170.Sensor logic 412 may determine the location of the user by queryinglocation services provided by mobile device 170 (e.g., a GPS device,etc.). Sensor logic 412 may determine the ambient noise by using amicrophone built into mobile device 170, STB 256, or computer 254.Sensor logic 412 may determine the ambient light by using aphoto-sensitive diode in mobile device 170, STB 256, or computer 254.Sensor logic 412 may determine the URL being visited by the user using aweb browser. Sensor logic 412 may determine the output device being used(e.g., speaker 257 or speaker 259). Sensor logic 412 may determine whois in the room watching TV 158.

In the following example, sensor logic 412 determines that (1) JohnSmith is the current profile (e.g., John is logged in), (2) it is 10p.m. on Friday, (3) an action film is playing on TV 158, and (4) bothJohn Smith and Joe Smith are present in the room watching TV 158.Process 600C may then use the sensed or determined parameters to queryrule tables (block 652) to determine if there are any rules to apply tothe current parameters. In the current example, rule table 500-3applies, based on the information stored in fields 502, 506, 508, 514,and 528 illustrated in FIG. 5C. If an applicable rule applies, thevolume may be adjusted according to the rule (block 654). In the currentexample, rule table 500-3 applies and the volume may be adjusted to 80%of the maximum volume automatically.

If there are multiple rule tables that apply (e.g., conflicting rules),then priority field 533 may determine which rule is implemented.Further, in one embodiment, the parameters (block 650) may be determinedor sensed continuously, on a regular basis (e.g., once every minute oronce every 5, 15, 20, 25, 30, 45, or 60 minutes), or in response tocertain events. In the current example, daemon 404 may determine thatJohn and Joe are currently watching TV 158. If Joe leaves the room, thendaemon 404 may determine that John is the only person watching TV 158and may apply a different rule, for example.

Although processes 600A, 600B, and 600C have been described with STB256, mobile device 170, and computer 254 providing the customizationfunctions, as mentioned above, these functions may be performed “in thecloud” by data center 210 (e.g., customization server 212) and provided“over the top” to a user device, such as STB 256.

Volume customization program 402 and daemon 404 may also be put into alearning mode. In this mode, sensor logic 412 senses the parameterslisted in table 500-1. Program 402 and daemon 404 also determine thevolume set by the users. Program 402 and daemon 404 then may analyze theinformation and look for patterns. For example, when a particular personis in the room (e.g., in front of STB 258), the user repeatedly andconsistently increase the volume. In this case, when that particularperson enters the room, program 402 and daemon 404 may automaticallyincrease the volume. Program 402 and daemon 404 may correlate sensed anddetermined information (e.g., stored in fields 502-533) with volumeinformation. When patterns are recognized, then program 402 and daemon404 may set the volume settings stored in fields 534-538. For example,if a user always has the volume turned high when playing music on mobiledevice 170 (e.g., without external speakers), then this pattern may belearned by program 402 and daemon 404 and settings may be stored intables 500. When a user consistently turns up the volume when watchingTV 158 from afar, this pattern may be recognized by program 402 anddaemon 404 and the appropriate settings may be saved in tables 500. Whena particular game is played with the volume consistently loud, exceptwhen the game is played at night, then this pattern may be recognizedand the information stored in tables 500.

As the term is used herein, “program” should be construed to mean anytype of content, including music, video, audio, or any combination ofaudio and video.

In the preceding specification, various preferred embodiments have beendescribed with reference to the accompanying drawings. It will, however,be evident that various modifications and changes may be made thereto,and additional embodiments may be implemented, without departing fromthe broader scope of the invention as set forth in the claims thatfollow. The specification and drawings are accordingly to be regarded inan illustrative rather than restrictive sense.

Further, certain portions of the invention may be implemented as logicthat performs one or more functions. This logic may include hardware,such as an application specific integrated circuit, a field programmablegate array, a processor, or, a microprocessor, or a combination ofhardware and software.

No element, act, or instruction used in the description of the presentapplication should be construed as critical or essential to theinvention unless explicitly described as such. Also, as used herein, thearticle “a” and the term “one of” are intended to include one or moreitems. Further, the phrase “based on” is intended to mean “based, atleast in part, on” unless explicitly stated otherwise.

What is claimed is:
 1. A computer-implemented method comprising:identifying an application launched in a device by a user or identifyinga program or a channel selected by the user for playing, wherein theidentified application, program, or channel includes audio content;querying a database, in response to identifying the application,program, or channel, to determine whether the application, program, orchannel is associated with a corresponding set of rules, wherein thedatabase stores a set of rules for each of a plurality of applications,programs, or channels, wherein each of the sets of rules is associatedwith a plurality of conditions and a plurality of preset volume settingscorresponding to the plurality of conditions, wherein the plurality ofconditions and the plurality of preset volume settings are customizableby the user, and wherein the plurality of preset volume settingsassociated with a particular application, program, or channel areapplied to all audio content played in association with the particularapplication, program, or channel; adjusting a volume for playing theaudio content, according to the corresponding set of rules, whendetermined that the identified application, program, or channel isassociated with the corresponding set of rules, during execution of theidentified application or during the playing of the identified programor channel; prompting the user to set a new set of rules to associatewith the identified application, program, or channel, in response todetermining that the identified application, program, or channel is notassociated with the corresponding set of rules; and receiving from theuser in response to prompting the user to set the new set of rules, thenew set of rules and associating the new set of rules in the databasewith the identified application, program, or channel.
 2. Thecomputer-implemented method of claim 1, wherein each of the presetvolume settings includes a volume level for adjusting the volume of thecontent included in the corresponding application, program, or channel.3. The computer-implemented method of claim 2, wherein each of thepreset volume settings includes a maximum volume level above which thevolume for playing the audio content included in the application,program, or channel cannot exceed.
 4. The computer-implemented method ofclaim 3, wherein the user is associated with a profile, the methodfurther comprising: preventing altering of the maximum volume level bythe user based on privileges associated with the profile that preventaltering of the maximum volume level.
 5. The computer-implemented methodof claim 4, wherein the user is a first user and the profile is a firstprofile, the method further comprising: allowing altering of the maximumvolume level by a second user based on privileges associated with asecond profile that allow altering of the maximum volume level.
 6. Thecomputer-implemented method of claim 1, wherein each of the sets ofrules includes a time frame during which the corresponding preset volumesetting applies.
 7. The computer-implemented method of claim 1, whereinidentifying the application, program, or channel includes identifyingthe program selected for playing, wherein the sets of rulescorresponding to the selected program includes a genre of programmingfor which the preset volume setting applies.
 8. A device comprising: amemory to store instructions; and a processor to execute instructionsto: receive a command initiated by a user to launch an application or toplay a channel or a program, wherein the application, channel, orprogram includes audio content; query a database, in response to thereceived command initiated by the user, to determine whether theapplication, program, or channel is associated with a set of rules,wherein the database stores sets of rules for each of a plurality ofapplications, programs, or channels, wherein each of the sets of rulesis associated with a set of conditions and a plurality of preset volumesettings corresponding to the set of conditions, wherein the sets ofconditions and the plurality of preset volume settings corresponding tothe sets of conditions are customizable by the user, and wherein theplurality of preset volume settings associated with a particularapplication, program, or channel are applied to all audio content playedin association with the particular application, program, or channel;adjust a volume for playing the audio content, according to acorresponding set of rules, when the processor determines that theapplication, program, or channel is associated with the correspondingset of rules during execution of the application or playing of thechannel or the program; and prompt the user to set a new set of rules toassociate with the application, program, or channel in response to thecommand initiated by the user, and in response to the application,channel, or program not being associated a corresponding set of rules;and receive from the user, in response to the prompt, the new set ofrules and associate the new set of rules in the database with theapplication, program, or channel.
 9. The device of claim 8, wherein eachof the preset volume settings includes a volume level for adjusting thevolume for playing the audio content included in the corresponding theapplication, program, or channel.
 10. The device of claim 9, whereineach of the preset volume settings includes a maximum volume level abovewhich the volume for playing the audio content included in thecorresponding application, program, or channel cannot exceed.
 11. Thedevice of claim 10, wherein the user is associated with a profile, andwherein the processor is configured to prevent altering of the maximumvolume level by the user based on privileges associated with the profilethat prevent altering of the maximum volume level.
 12. The device ofclaim 11, wherein the user is a first user and the profile is a firstprofile, and wherein the processor is configured to allow altering ofthe maximum volume level by a second user based on privileges associatedwith a second profile that allow altering of the maximum volume level.13. The device of claim 8, wherein each of the sets of rules includes atime frame during which the corresponding preset volume setting applies.14. The device of claim 8, wherein the processor receives a selection ofthe program for playing, and wherein the set of rules corresponding tothe selected program includes a genre of programming for which thepreset volume setting applies.
 15. A non-transitory computer-readablemedium comprising instructions for execution by a processor, theinstructions including: one or more instructions to identify anapplication launched in a device by a user or to identify a program or achannel selected by the user for playing, wherein the identifiedapplication, program, or channel includes audio content; one or moreinstructions to query a database, in response to the identification ofthe application, the program, or the channel, to determine whether theapplication, program, or channel is associated with a corresponding setof rules, wherein the database stores a set of rules for each of aplurality of applications, programs, or channels, wherein each of thesets of rules is associated with a set of conditions and a plurality ofpreset volume settings corresponding to the set of conditions, whereinthe sets of conditions and the plurality of preset volume settingscorresponding to the sets of conditions are customizable by the user,and wherein the plurality of preset volume settings associated with aparticular application, program, or channel are applied to all audiocontent played in association with the particular application, program,or channel; one or more instructions to adjust a volume for playing theaudio content, according to the corresponding set of rules, when theapplication, program, or channel is associated with the correspondingset of rules, during execution of the application or playing of theprogram or channel; and one or more instructions to prompt the user toset a new set of rules to associate with the identified application,program, or channel, in response to identification of the application,program, or channel, and in response to the determining that theapplication, program, or channel, is not associated a set of rules; andone or more instructions to receive from the user, in response toprompting the user to set the new set of rules, the new set of rules andassociate the new set of rules in the database with the identifiedapplication, program, or channel.
 16. The non-transitorycomputer-readable medium of claim 15, wherein each of the preset volumesettings includes a volume level for adjusting the volume for playingthe audio content included in the corresponding application, program, orchannel.
 17. The non-transitory computer-readable medium of claim 15,wherein each of the preset volume settings includes a maximum volumelevel above which the volume for playing the audio content included inthe corresponding application, program, or channel cannot exceed. 18.The non-transitory computer-readable medium of claim 17, wherein theuser is associated with a profile, further comprising: one or moreinstructions to prevent altering of the maximum volume level by the userbased on privileges associated with the profile that prevent altering ofthe maximum volume level.
 19. The non-transitory computer-readablemedium of claim 18, wherein the user is a first user and the profile isa first profile, further comprising: one or more instructions to allowaltering of the maximum volume level by a second user based onprivileges associated with a second profile that allow altering of themaximum volume level.
 20. The non-transitory computer-readable medium ofclaim 15, wherein each of the sets of rules includes a time frame duringwhich the corresponding preset volume setting applies.